'''
Author: your name
Date: 2021-09-25 22:42:32
LastEditTime: 2023-04-20 08:24:32
LastEditors: besttea best-tea@163.com
Description: In User Settings Edit
FilePath: \CV2lib\getimg.py
'''
import urllib.request
import cv2
import numpy as np
import os
'''
下载 ImageNet 数据
ImageNet 最常用的子集是ImageNet 大规模视觉识别挑战赛 (ILSVRC) 2012-2017 图像分类和定位数据集。该数据集跨越 1000 个对象类，
包含 1,281,167 张训练图像、50,000 张验证图像和 100,000 张测试图像。这个子集在Kaggle上可用。

要访问完整的 ImageNet 数据集和其他常用子集，请登录或申请访问权限。为此，您需要同意我们的访问条款。
[RESEARCHER_FULLNAME]（“研究人员”）已申请在普林斯顿大学和斯坦福大学使用ImageNet 数据库（“数据库”）。作为此类许可的交换，研究人员特此同意以下条款和条件：

研究人员只能将数据库用于非商业研究和教育目的。
+ 普林斯顿大学和斯坦福大学对数据库不作任何陈述或保证，包括但不限于不侵权或适合特定用途的保证。
+ 研究人员对他或她使用数据库承担全部责任，并应为 ImageNet 团队、普林斯顿大学和斯坦福大学，包括他们的员工、受托人、官员和代理人辩护和赔偿因研究人员使用数据库而引起的任何和所有索赔，包括但不限于研究人员使用他或她可能从数据库中创建的任何受版权保护的图像副本。
+ 研究人员可以向研究人员和同事提供访问数据库的权限，前提是他们首先同意受这些条款和条件的约束。
+ 普林斯顿大学和斯坦福大学保留随时终止研究人员访问数据库的权利。
+ 如果研究人员受雇于营利性商业实体，则研究人员的雇主也应受这些条款和条件的约束，研究人员特此声明，他或她已获得充分授权，可以代表该雇主签订本协议。
+ 新泽西州法律适用于本协议项下的所有争议。
'''
def store_raw_images():
    neg_images_link = '//image-net.org/api/text/imagenet.synset.geturls?wnid=n00523513'   
    neg_image_urls = urllib.request.urlopen(neg_images_link).read().decode()
    pic_num = 1
    
    if not os.path.exists('neg'):
        os.makedirs('neg')
        
    for i in neg_image_urls.split('\n'):
        try:
            print(i)
            urllib.request.urlretrieve(i, "neg/"+str(pic_num)+".jpg")
            img = cv2.imread("neg/"+str(pic_num)+".jpg",cv2.IMREAD_GRAYSCALE)
            # should be larger than samples / pos pic (so we can place our image on it)
            resized_image = cv2.resize(img, (100, 100))
            cv2.imwrite("neg/"+str(pic_num)+".jpg",resized_image)
            pic_num += 1
            
        except Exception as e:
            print(str(e))  

store_raw_images()